Stop using gtk_main and gtk_main_quit
authorMatthias Clasen <mclasen@redhat.com>
Mon, 10 Feb 2020 03:24:47 +0000 (22:24 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 10 Feb 2020 04:12:32 +0000 (23:12 -0500)
Replace these calls with direct use of GMainContext api.

121 files changed:
docs/tools/shooter.c
gtk/gtktestutils.c
gtk/tools/gtk-builder-tool-preview.c
tests/animated-resizing.c
tests/animated-revealing.c
tests/frame-stats.c
tests/gdkgears.c
tests/listmodel.c
tests/motion-compression.c
tests/overlayscroll.c
tests/scrolling-performance.c
tests/showrendernode.c
tests/simple.c
tests/syncscroll.c
tests/testaccel.c
tests/testadjustsize.c
tests/testappchooser.c
tests/testappchooserbutton.c
tests/testassistant.c
tests/testbaseline.c
tests/testblur.c
tests/testborderdrawing.c
tests/testbox.c
tests/testbuttons.c
tests/testcairo.c
tests/testcalendar.c
tests/testcellarea.c
tests/testcellrenderertext.c
tests/testcenterbox.c
tests/testclipboard2.c
tests/testcolorchooser.c
tests/testcolorchooser2.c
tests/testcombo.c
tests/testdialog.c
tests/testdnd.c
tests/testdnd2.c
tests/testdnd3.c
tests/testellipsise.c
tests/testemblems.c
tests/testentrycompletion.c
tests/testentryicons.c
tests/testexpand.c
tests/testexpander.c
tests/testfilechooser.c
tests/testfilechooserbutton.c
tests/testflowbox.c
tests/testfontchooser.c
tests/testfontchooserdialog.c
tests/testfontoptions.c
tests/testframe.c
tests/testfullscreen.c
tests/testgaction.c
tests/testgiconpixbuf.c
tests/testglarea.c
tests/testglblending.c
tests/testgmenu.c
tests/testgrid.c
tests/testgridbaseline.c
tests/testgrouping.c
tests/testgtk.c
tests/testheaderbar.c
tests/testheightforwidth.c
tests/testicontheme.c
tests/testiconview-keynav.c
tests/testiconview.c
tests/testkineticscrolling.c
tests/testlevelbar.c
tests/testlist.c
tests/testlist2.c
tests/testlist3.c
tests/testlockbutton.c
tests/testmenubutton.c
tests/testmountoperation.c
tests/testnoscreen.c
tests/testnotebookdnd.c
tests/testorientable.c
tests/testoutsetshadowdrawing.c
tests/testoverlay.c
tests/testoverlaystyleclass.c
tests/testpixbuf-scale.c
tests/testplacesview.c
tests/testpopover.c
tests/testrevealer.c
tests/testscale.c
tests/testscrolledge.c
tests/testscrolledwindow.c
tests/testselectionmode.c
tests/testsensitive.c
tests/testspinbutton.c
tests/testsplitheaders.c
tests/teststack.c
tests/teststackedheaders.c
tests/testswitch.c
tests/testtexture.c
tests/testtextview.c
tests/testtextview2.c
tests/testtoolbar2.c
tests/testtooltips.c
tests/testtreechanging.c
tests/testtreecolumns.c
tests/testtreecolumnsizing.c
tests/testtreednd.c
tests/testtreeedit.c
tests/testtreeflow.c
tests/testtreefocus.c
tests/testtreelistmodel.c
tests/testtreepos.c
tests/testtreesort.c
tests/testtreeview.c
tests/testverticalcells.c
tests/testvolumebutton.c
tests/testwidgetfocus.c
tests/testwidgettransforms.c
tests/testwindowdrag.c
tests/testwindowsize.c
tests/treestoretest.c
tests/video-timer.c
tests/visuals/visuals.c
testsuite/a11y/testfocus.c
testsuite/gtk/displayclose.c
testsuite/gtk/templates.c

index 3cb1f8641460c5c2295ca8496b9730c725fde096..5074f3e8bcba5882f7699d469b0e91b2ad81786d 100644 (file)
@@ -308,7 +308,8 @@ int main (int argc, char **argv)
   toplevels = get_all_widgets ();
 
   queue_show ();
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 34c802bcedc70f83198093509d25e901c6860d11..4b4018fa810adbcf943bc1c21c79c98bab9a1e7c 100644 (file)
@@ -87,7 +87,11 @@ quit_main_loop_callback (GtkWidget     *widget,
                          GdkFrameClock *frame_clock,
                          gpointer       user_data)
 {
-  gtk_main_quit ();
+  gboolean *done = user_data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
 
   return G_SOURCE_REMOVE;
 }
@@ -108,6 +112,7 @@ void
 gtk_test_widget_wait_for_draw (GtkWidget *widget)
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
+  gboolean done = FALSE;
 
   /* We can do this here because the whole tick procedure does not
    * reenter the main loop. Otherwise we'd need to manually get the
@@ -115,10 +120,11 @@ gtk_test_widget_wait_for_draw (GtkWidget *widget)
    */
   gtk_widget_add_tick_callback (widget,
                                 quit_main_loop_callback,
-                                NULL,
+                                &done,
                                 NULL);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 }
 
 static GType *all_registered_types = NULL;
index cc19251235a9b718fbdc0e9f5968b82bfd093301..a5289744cbada83fe0764945c35141f6a31a9ba1 100644 (file)
@@ -143,7 +143,8 @@ preview_file (const char *filename,
 
   gtk_window_present (GTK_WINDOW (window));
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   g_object_unref (builder);
 }
index 0301820d92c64a61f92e46f4fe8dd30f1660ec7a..ca83ff6c8d0c2012d7392e7dfbfbe14bd03950e3 100644 (file)
@@ -160,6 +160,17 @@ static GOptionEntry options[] = {
   { NULL }
 };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main(int argc, char **argv)
 {
@@ -168,6 +179,7 @@ main(int argc, char **argv)
   GdkDisplay *display;
   GdkMonitor *monitor;
   GdkRectangle monitor_bounds;
+  gboolean done = FALSE;
 
   GOptionContext *context = g_option_context_new (NULL);
   g_option_context_add_main_entries (context, options, NULL);
@@ -194,7 +206,7 @@ main(int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (window), da);
 
   g_signal_connect (window, "destroy",
-                    G_CALLBACK (gtk_main_quit), NULL);
+                    G_CALLBACK (quit_cb), NULL);
 
   g_signal_connect (window, "map",
                     G_CALLBACK (on_map), NULL);
@@ -206,7 +218,8 @@ main(int argc, char **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 72e28459f42619575888532b448c336b8ef39df4..e7f97832efb4ed5aa86161ee53ebc7cba144c4d5 100644 (file)
@@ -17,6 +17,17 @@ toggle_reveal (GtkRevealer *revealer)
   gtk_revealer_set_reveal_child (revealer, !gtk_revealer_get_reveal_child (revealer));
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main(int argc, char **argv)
 {
@@ -24,6 +35,7 @@ main(int argc, char **argv)
   GtkCssProvider *cssprovider;
   GError *error = NULL;
   guint x, y;
+  gboolean done = FALSE;
 
   GOptionContext *context = g_option_context_new (NULL);
   g_option_context_add_main_entries (context, options, NULL);
@@ -38,7 +50,7 @@ main(int argc, char **argv)
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   frame_stats_ensure (GTK_WINDOW (window));
 
   revealer = gtk_revealer_new ();
@@ -70,7 +82,8 @@ main(int argc, char **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 5d888d2856140b4c8b776a359b066f994f212fef..289a70c6b7e2a4d4b7c41033188526b7aa8d77ad 100644 (file)
@@ -102,7 +102,7 @@ on_frame_clock_after_paint (GdkFrameClock *frame_clock,
       variable_init (&frame_stats->latency);
 
       if (frame_stats->num_stats == max_stats)
-        gtk_main_quit ();
+        exit (0);
     }
 
   frame_stats->frames_since_last_print++;
index 2df86a98e26eaa16d7d62b5805c82c48c2a8a110..f5a3d53cd8b3e4930558f1848b0603b1a2272f6d 100644 (file)
@@ -107,6 +107,17 @@ less_gears (GtkButton *button, gpointer data)
     gtk_widget_destroy (gears);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -114,13 +125,14 @@ main (int argc, char *argv[])
     *fps_label, *gears, *extra_hbox, *bbox, *overlay,
     *revealer, *frame, *label, *scrolled, *popover;
   int i;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_titlebar (GTK_WINDOW (window), g_object_new (GTK_TYPE_HEADER_BAR, "visible", TRUE, "title", "GdkGears", NULL));
   gtk_window_set_default_size (GTK_WINDOW (window), 640, 640);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   overlay = gtk_overlay_new ();
   g_object_set (overlay, "margin", 12, NULL);
@@ -244,7 +256,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return EXIT_SUCCESS;
 }
index c1bd0f933d6684fc705df63113b34e2c545b8221..33faecc9ff6118b312b8612412260948a45410f4 100644 (file)
@@ -226,7 +226,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index d69716e5f35d75c3a048cc42b436433e310ef9c1..e79bb5c643f27442b13ee961f49c3d8a5065aacd 100644 (file)
@@ -34,6 +34,17 @@ on_draw (GtkDrawingArea *da,
   cairo_stroke (cr);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -43,6 +54,7 @@ main (int argc, char **argv)
   GtkWidget *scale;
   GtkWidget *da;
   GtkEventController *controller;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -71,10 +83,11 @@ main (int argc, char **argv)
   gtk_widget_add_controller (da, controller);
 
   g_signal_connect (window, "destroy",
-                    G_CALLBACK (gtk_main_quit), NULL);
+                    G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE); 
 
   return 0;
 }
index 64f327935113c0358870ea1abfbbc60e5a957980..acd76246b6ac53c502783b8bd9d479f95ba597d5 100644 (file)
@@ -39,6 +39,17 @@ mode_changed (GtkComboBox *combo, GtkScrolledWindow *sw)
   gtk_scrolled_window_set_overlay_scrolling (sw, active == 1);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -50,12 +61,13 @@ main (int argc, char *argv[])
   GtkWidget *sb2;
   GtkWidget *combo;
   GtkAdjustment *adj;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 20);
   gtk_container_add (GTK_CONTAINER (window), box);
@@ -92,7 +104,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index bfba4acc74ea4ff1d46c60066de626f7cb049b0f..4f195958ac48523dbcbbdb04eea4b7fc85f4d398 100644 (file)
@@ -92,6 +92,17 @@ static GOptionEntry options[] = {
   { NULL }
 };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -101,6 +112,7 @@ main (int argc, char **argv)
   GtkWidget *grid;
   GError *error = NULL;
   int i;
+  gboolean done = FALSE;
 
   GOptionContext *context = g_option_context_new (NULL);
   g_option_context_add_main_entries (context, options, NULL);
@@ -142,8 +154,10 @@ main (int argc, char **argv)
 
   gtk_widget_show (window);
   g_signal_connect (window, "destroy",
-                    G_CALLBACK (gtk_main_quit), NULL);
-  gtk_main ();
+                    G_CALLBACK (quit_cb), &done);
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 6ea4ba1d5db80189a156661678bc9e528658c4b4..e1759cd1a155c15dd9e808bcf2b77f08d7e57f5a 100644 (file)
@@ -119,6 +119,17 @@ deserialize_error_func (const GtkCssSection *section,
   g_free (section_str);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -130,6 +141,7 @@ main (int argc, char **argv)
   graphene_rect_t node_bounds;
   GOptionContext *option_context;
   GError *error = NULL;
+  gboolean done = FALSE;
 
   option_context = g_option_context_new ("NODE-FILE [-o OUTPUT] [--compare]");
   g_option_context_add_main_entries (option_context, options, NULL);
@@ -223,9 +235,11 @@ main (int argc, char **argv)
                      MAX (600, node_bounds.size.width),
                      MAX (500, node_bounds.size.height));
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
-  gtk_main ();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 63ae18f2f6c357e012be27d109ad153057679501..09de9915c331250076b250b98f725a79db921c2d 100644 (file)
@@ -25,17 +25,29 @@ hello (void)
   g_print ("hello world\n");
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window, *button;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "hello world");
   gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   button = gtk_button_new ();
   gtk_button_set_label (GTK_BUTTON (button), "hello world");
@@ -45,7 +57,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 9229ff9aeab3c494da4df765ec0e696c8b49bbc7..d33b6ab850e4bc72e7e0aba26011a2728d45b9c6 100644 (file)
@@ -63,7 +63,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (win);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 0cc7d1600b95fcaf67c2664c53f7ad260bf91aa0..494eb8add004dda233e98e549a9e98acd853a388 100644 (file)
@@ -128,7 +128,8 @@ main (gint argc, gchar **argv)
 
   gtk_widget_show (dialog);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 7bcb86215f7eef546b04d0713264a80f6e708053..4d03a8ff0ed4f16c1f4bc172cdcd64553235dc24 100644 (file)
@@ -30,6 +30,7 @@ enum {
   TEST_WIDGET_LAST
 };
 
+static gboolean done = FALSE;
 static GtkWidget *test_widgets[TEST_WIDGET_LAST];
 
 static GtkWidget*
@@ -57,6 +58,17 @@ create_button (void)
   return gtk_button_new_with_label ("BUTTON!");
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 static void
 open_test_window (void)
 {
@@ -66,7 +78,7 @@ open_test_window (void)
   test_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (test_window), "Tests");
 
-  g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), test_window);
+  g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_window_set_resizable (GTK_WINDOW (test_window), FALSE);
 
@@ -131,7 +143,7 @@ open_control_window (void)
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Controls");
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (window), box);
@@ -230,7 +242,7 @@ open_alignment_window (void)
   test_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (test_window), "Alignment");
 
-  g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_window_set_resizable (GTK_WINDOW (test_window), TRUE);
   gtk_window_set_default_size (GTK_WINDOW (test_window), 500, 500);
@@ -291,7 +303,7 @@ open_margin_window (void)
   test_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (test_window), "Margin");
 
-  g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_window_set_resizable (GTK_WINDOW (test_window), TRUE);
 
@@ -317,7 +329,7 @@ open_valigned_label_window (void)
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 
-  g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_widget_show (box);
@@ -372,7 +384,8 @@ main (int argc, char *argv[])
   open_margin_window ();
   open_valigned_label_window ();
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index baf9adcad2a31951a0d13515b2f77313d1069cfd..c1e76999868b25043a5578285a67836c7b77d4dd 100644 (file)
@@ -151,11 +151,23 @@ button_clicked (GtkButton *b,
   g_free (path);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
   GtkWidget *w1;
   gchar *path;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -221,9 +233,10 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (toplevel), grid);
 
   gtk_widget_show (toplevel);
-  g_signal_connect (toplevel, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return EXIT_SUCCESS;
 }
index 6aee3dad6d9e5a05caeec4df23227e5449448c21..8597fcc57c5d6aeeb27fa88682dc82e90564ac88 100644 (file)
@@ -60,11 +60,23 @@ action_cb (GtkAppChooserButton *b,
   g_print ("Activated custom item %s\n", item_name);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc,
       char **argv)
 {
   GtkWidget *w;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -126,9 +138,10 @@ main (int argc,
 #endif
   gtk_widget_show (toplevel);
 
-  g_signal_connect (toplevel, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return EXIT_SUCCESS;
 }
index ec3d3f9928a587aaca51ae053d7c3f03576dfc8d..e59e29ae69659a29cf19967f975f22b8b22ba4bc 100644 (file)
@@ -690,11 +690,23 @@ struct {
     { "page-flipping assistant", create_page_flipping_assistant },
   };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, gchar *argv[])
 {
   GtkWidget *window, *box, *button;
   gint i;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -704,7 +716,7 @@ main (int argc, gchar *argv[])
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_hide_on_close (GTK_WINDOW (window), TRUE);
 
-  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
   gtk_container_add (GTK_CONTAINER (window), box);
@@ -721,7 +733,9 @@ main (int argc, gchar *argv[])
     }
 
   gtk_widget_show (window);
-  gtk_main ();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 2ab609582f5440beaff73602ef63c493adeb40c3..31269db210864f13b10bd90afcb4114386afb6e6 100644 (file)
@@ -66,6 +66,17 @@ set_font_size (GtkWidget *widget, gint size)
   gtk_style_context_add_class (gtk_widget_get_style_context (widget), class[size]);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -75,6 +86,7 @@ main (int    argc,
   GtkAdjustment *adjustment;
   int i, j;
   GtkCssProvider *provider;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -88,7 +100,7 @@ main (int    argc,
                                               GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
   g_object_unref (provider);
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (quit_cb), &done);
 
   notebook = gtk_notebook_new ();
   gtk_container_add (GTK_CONTAINER (window), notebook);
@@ -380,7 +392,8 @@ main (int    argc,
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 99632ffd9c48f53fe8900a8e67d3464f3ca8f782..e425450d9e1fc43519cb264dea812d3158c6b5e2 100644 (file)
@@ -72,6 +72,17 @@ value_changed_cb2 (GtkRange *range,
   g_free (text);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -79,11 +90,12 @@ main (int argc, char **argv)
   GtkWidget *blur_box;
   GtkWidget *scale;
   GtkWidget *value_label;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   blur_box = g_object_new (gtk_blur_box_get_type (),
                            "orientation", GTK_ORIENTATION_VERTICAL,
@@ -115,7 +127,9 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (window), blur_box);
 
   gtk_widget_show (window);
-  gtk_main ();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 80d5b81a969f73eccac054b064c6f5798a46b653..b99b3aa75d602096710234d4f690d107457911c6 100644 (file)
@@ -76,6 +76,16 @@ static const char *css =
 "}"
 ;
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
 
 int
 main (int argc, char **argv)
@@ -86,6 +96,7 @@ main (int argc, char **argv)
   GtkWidget *bottom;
   GtkWidget *w;
   GtkCssProvider *provider;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -151,10 +162,11 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (box), top);
   gtk_container_add (GTK_CONTAINER (box), bottom);
   gtk_container_add (GTK_CONTAINER (window), box);
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   gtk_widget_destroy (window);
 }
index 106986d45bc09ea3668e56139fc250c93af059ab..6afd8a6c7777347f94ca43164d797014a0c200e3 100644 (file)
@@ -124,7 +124,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 038dfade80a24f15f80bb303e6b1f7eda8cfb755..e34f10654a4c1e8884de858f288bfccb4110902f 100644 (file)
@@ -115,7 +115,8 @@ int main (int argc, char *argv[])
 
        gtk_widget_show (window);
 
-       gtk_main ();
+        while (TRUE)
+          g_main_context_iteration (NULL, TRUE);
 
        return 0;
 }
index 3f69ae6d485f293c3ca6d38fafb355067fdab616..5732528fa15b863040779e45e6cac9f7e1c3d178 100644 (file)
@@ -184,10 +184,22 @@ on_draw (GtkDrawingArea *darea,
   cairo_surface_destroy (circles);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
   GtkWidget *window, *darea;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -200,11 +212,12 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (window), darea);
 
   gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (darea), on_draw, NULL, NULL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
   
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 91cfa9f20738b3fe1801f9a740a04c1d148addd8..664498caa9ce997a1fa41bd955744c2655e3ad46 100644 (file)
@@ -163,6 +163,17 @@ create_frame (const char *caption,
   return frame;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 static void
 create_calendar(void)
 {
@@ -182,11 +193,12 @@ create_calendar(void)
     { "show-day-names", "Show Day Names", calendar },
     { "show-week-numbers", "Show Week Numbers", calendar },
   };
+  gboolean done = FALSE;
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_hide_on_close (GTK_WINDOW (window), TRUE);
   gtk_window_set_title (GTK_WINDOW (window), "GtkCalendar Example");
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
 
@@ -281,7 +293,7 @@ create_calendar(void)
   gtk_widget_set_halign (bbox, GTK_ALIGN_END);
 
   button = gtk_button_new_with_label ("Close");
-  g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (button, "clicked", G_CALLBACK (quit_cb), &done);
   gtk_container_add (GTK_CONTAINER (bbox), button);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, DEF_PAD_SMALL);
@@ -297,11 +309,11 @@ create_calendar(void)
   gtk_window_set_default_widget (GTK_WINDOW (window), button);
 
   gtk_window_set_default_size (GTK_WINDOW (window), 600, 0);
-  g_signal_connect (window, "close-request", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
-
-  gtk_main();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 }
 
 
index e4d9f19cecd73842bc12a37d50b13396363b63fb..6c4f4225a77f1b32e58a81ac3fe010ea1074faaa 100644 (file)
@@ -612,7 +612,8 @@ main (int argc, char *argv[])
   focus_cell_area ();
   background_area ();
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 4c35f13ef853ad4ab899afe76403d5be69a2dfed..eaa41c47c5f1ab60f326b2c9b12a0e4562061fcb 100644 (file)
@@ -246,6 +246,17 @@ create_tree (gboolean rtl)
   return sw;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -253,12 +264,13 @@ main (int argc, char **argv)
   GtkWidget *vbox;
   GtkWidget *label;
   GtkWidget *tree;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   g_signal_connect (window, "destroy",
-                   G_CALLBACK (gtk_main_quit), NULL);
+                   G_CALLBACK (quit_cb), &done);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -282,7 +294,9 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (vbox), tree);
 
   gtk_widget_show (window);
-  gtk_main ();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 326a728bfb10c63d666da1c73a0f25bbc56b489e..e4a135088801ca8abfe7465902eac65113d3d4cd 100644 (file)
@@ -1,11 +1,23 @@
 #include <gtk/gtk.h>
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window;
   GtkWidget *box;
   GtkWidget *child;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -28,11 +40,12 @@ main (int argc, char *argv[])
   gtk_label_set_ellipsize (GTK_LABEL (child), PANGO_ELLIPSIZE_END);
   gtk_center_box_set_end_widget (GTK_CENTER_BOX (box), child);
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index e4ed34db376f8c16eee6b5fbd1d70376d945913b..84918215b1a8daba41a110eae170ff67704d4a5f 100644 (file)
@@ -383,11 +383,23 @@ get_window_contents (GdkDisplay *display,
   return box;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
   GtkWidget *window;
   GdkDisplay *alt_display;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -396,14 +408,15 @@ main (int argc, char **argv)
     alt_display = gdk_display_get_default ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_container_add (GTK_CONTAINER (window),
                      get_window_contents (gtk_widget_get_display (window),
                                           alt_display));
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 0a6fb1d5bc442704b915039df3981539dbc42fd4..ee0d643cb722c6d2bfa3f1f79086fc647da922f7 100644 (file)
@@ -10,6 +10,8 @@ color_changed (GObject *o, GParamSpec *pspect, gpointer data)
            color.red, color.green, color.blue, color.alpha);
 }
 
+static gboolean done = FALSE;
+
 static void
 dialog_response (GtkDialog *dialog, gint response)
 {
@@ -27,7 +29,9 @@ dialog_response (GtkDialog *dialog, gint response)
       break;
     }
 
-  gtk_main_quit ();
+  done = TRUE;
+
+  g_main_context_wakeup (NULL);
 }
 
 int
@@ -96,7 +100,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (dialog);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 15d8a90248128730ed3a1c2ff9f3f788a272f716..4309d9c754b02c015adda6d0aeb0530df20b02a8 100644 (file)
@@ -53,7 +53,8 @@ int main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index ade1673f8020314df8408f13a0152f0155f1c706..d6d6d95f1fed90e7ecec73a4ac5e6d50aa0906b5 100644 (file)
@@ -919,6 +919,17 @@ displayed_row_changed (GtkComboBox *combo,
   gtk_tree_path_free (path);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -932,6 +943,7 @@ main (int argc, char **argv)
        GtkCellArea *area;
         gchar *text;
         gint i;
+        gboolean done = FALSE;
 
         gtk_init ();
 
@@ -939,7 +951,7 @@ main (int argc, char **argv)
          gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
 
         window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-        g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+        g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
         mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
         gtk_container_add (GTK_CONTAINER (window), mainbox);
@@ -1286,7 +1298,8 @@ main (int argc, char **argv)
 
         gtk_widget_show (window);
 
-        gtk_main ();
+        while (!done)
+          g_main_context_iteration (NULL, TRUE);
 
         return 0;
 }
index 7ec34dc9cd74002591410b720a70208d6f353be6..e6053abb2cf7afbe14331e5e7e029a43ccf93e28 100644 (file)
@@ -420,7 +420,8 @@ main (int argc, char *argv[])
   gtk_container_add (GTK_CONTAINER (vbox), button);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
   
   return 0;
 }
index 54df81423e0ddd085fe3ecac0afe6ee5e07053e4..32a19de3c3e4eff69f1d231e2f27812e41b1cf38 100644 (file)
@@ -583,6 +583,17 @@ test_init (void)
     g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int 
 main (int argc, char **argv)
 {
@@ -598,6 +609,7 @@ main (int argc, char **argv)
   GtkDragSource *source;
   GdkContentFormats *targets;
   GtkDropTarget *dest;
+  gboolean done = FALSE;
 
   test_init ();
   
@@ -605,7 +617,7 @@ main (int argc, char **argv)
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   g_signal_connect (window, "destroy",
-                   G_CALLBACK (gtk_main_quit), NULL);
+                   G_CALLBACK (quit_cb), &done);
 
   
   grid = gtk_grid_new ();
@@ -679,7 +691,8 @@ main (int argc, char **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index f011399525ed25d5cc6772e176c911097c581fbd..3323e4aa4ca7269ca6124ad254f9a1742c5e8c6a 100644 (file)
@@ -443,7 +443,8 @@ main (int argc, char *Argv[])
   gtk_grid_attach (GTK_GRID (grid), make_image ("dialog-information", CENTER), 1, 3, 1, 1);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index f9315569fc5ecd6d2421dbf85c3da0bb5454d58c..d1e9bfe83276af4ed117629dd21cd93e4ae28639 100644 (file)
@@ -392,7 +392,8 @@ int main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 7abb58f22932cec02887249f94b25f5bae2358a1..9bae0492f8b6e789b03a115eccd3856111b295ec 100644 (file)
@@ -94,17 +94,29 @@ overlay_draw (GtkDrawingArea *da,
   cairo_stroke (cr);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window, *vbox, *label;
   GtkWidget *combo, *scale, *overlay, *da;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -141,7 +153,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index cd28b3995286de3297c98ada3400307c072a99ec..013865afda7c950afca2e7e4b7c9d662c0856cc5 100644 (file)
@@ -35,7 +35,8 @@ int main (int argc, char **argv)
 
        gtk_widget_show (window);
 
-       gtk_main ();
+        while (TRUE)
+                g_main_context_iteration (NULL, TRUE);
 
        return 0;
 }
index 3967c0bba6a4b47c58542524c21229f3a6964030..ac67928e76e2a75b5732038b043fcf45805a37db 100644 (file)
@@ -286,6 +286,17 @@ match_selected_cb (GtkEntryCompletion *completion,
   return TRUE;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int 
 main (int argc, char *argv[])
 {
@@ -295,11 +306,12 @@ main (int argc, char *argv[])
   GtkEntryCompletion *completion;
   GtkTreeModel *completion_model;
   GtkCellRenderer *cell;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -407,7 +419,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index e117579d2e6fc4c9a410a07dcbdcf2c2083fecae..31987b18d5d38e6ce6c7618078ee49af949c19a6 100644 (file)
@@ -74,6 +74,17 @@ icon_pressed_cb (GtkGesture *gesture,
   g_print ("You clicked me!\n");
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -90,6 +101,7 @@ main (int argc, char **argv)
   GIcon *icon;
   GdkContentProvider *content;
   GValue value = G_VALUE_INIT;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -97,7 +109,7 @@ main (int argc, char **argv)
   gtk_window_set_title (GTK_WINDOW (window), "Gtk Entry Icons Test");
 
   g_signal_connect (G_OBJECT (window), "destroy",
-                   G_CALLBACK (gtk_main_quit), NULL);
+                   G_CALLBACK (quit_cb), &done);
 
   grid = gtk_grid_new ();
   gtk_container_add (GTK_CONTAINER (window), grid);
@@ -284,7 +296,9 @@ main (int argc, char **argv)
   gtk_css_provider_load_from_data (provider, cssdata, -1);
   gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (provider), 800);
   gtk_widget_show (window);
-  gtk_main();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 348e66dd85f3d3f5e80dd50c701f152d7ef73c7f..2339e19db8e6c7c36a685e47b1da81404cd092ab 100644 (file)
@@ -156,7 +156,8 @@ main (int argc, char *argv[])
   create_box_window ();
   create_grid_window ();
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 114ef8bc94944f3498460c9afcf4f65844a6cd9f..486211a5c07ac3d61825a55c518add8495ec4724 100644 (file)
@@ -12,9 +12,13 @@ do_not_expand (GtkWidget *child, gpointer data)
 }
 
 static void
-response_cb (GtkDialog *dialog, gint response_id)
+response_cb (GtkDialog *dialog, gint response_id, gpointer data)
 {
-  gtk_main_quit ();
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
 }
 
 int
@@ -26,6 +30,7 @@ main (int argc, char *argv[])
   GtkWidget *sw;
   GtkWidget *tv;
   GtkTextBuffer *buffer;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -71,11 +76,12 @@ main (int argc, char *argv[])
   g_signal_connect (expander, "notify::expanded",
                     G_CALLBACK (expander_cb), dialog);
 
-  g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL);
+  g_signal_connect (dialog, "response", G_CALLBACK (response_cb), &done);
 
   gtk_window_present (GTK_WINDOW (dialog));
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 214199427548fcc1ac93726becb53ac6e1c72168..4ae441ef221285bbef22758adf74cea2e00d8b7c 100644 (file)
@@ -70,8 +70,11 @@ print_selected (GtkFileChooser *chooser)
 
 static void
 response_cb (GtkDialog *dialog,
-            gint       response_id)
+            gint       response_id,
+             gpointer   data)
 {
+  gboolean *done = data;
+
   if (response_id == GTK_RESPONSE_OK)
     {
       GSList *list;
@@ -98,7 +101,9 @@ response_cb (GtkDialog *dialog,
   else
     g_print ("Dialog was closed\n");
 
-  gtk_main_quit ();
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
 }
 
 static gboolean
@@ -540,6 +545,7 @@ main (int argc, char **argv)
     { NULL }
   };
   GOptionContext *context;
+  gboolean done = FALSE;
 
   context = g_option_context_new ("");
   g_option_context_add_main_entries (context, options, NULL);
@@ -615,7 +621,7 @@ main (int argc, char **argv)
   g_signal_connect (dialog, "current-folder-changed",
                    G_CALLBACK (print_current_folder), NULL);
   g_signal_connect (dialog, "response",
-                   G_CALLBACK (response_cb), NULL);
+                   G_CALLBACK (response_cb), &done);
   g_signal_connect (dialog, "confirm-overwrite",
                    G_CALLBACK (confirm_overwrite_cb), NULL);
 
@@ -768,7 +774,8 @@ main (int argc, char **argv)
    * someone else destroys them.  We explicitly destroy windows to catch leaks.
    */
   g_object_ref (dialog);
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
   gtk_widget_destroy (dialog);
   g_object_unref (dialog);
 
index 1df31b9a04f276958d4cfe2381a5b1c09006a9ba..39f5eb154cd6ba1cf029ed3cb1908247d0d5448c 100644 (file)
@@ -242,6 +242,16 @@ add_new_filechooser_button (const gchar          *mnemonic,
   gtk_container_add (GTK_CONTAINER (hbox), button);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
 
 int
 main (int   argc,
@@ -251,6 +261,7 @@ main (int   argc,
   GtkSizeGroup *label_group;
   GOptionContext *context;
   gchar *cwd;
+  gboolean done = FALSE;
 
   context = g_option_context_new ("- test GtkFileChooserButton widget");
   g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
@@ -269,7 +280,7 @@ main (int   argc,
 
   win = gtk_dialog_new_with_buttons ("TestFileChooserButton", NULL, 0,
                                     "_Quit", GTK_RESPONSE_CLOSE, NULL);
-  g_signal_connect (win, "response", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (win, "response", G_CALLBACK (quit_cb), &done);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 18);
   g_object_set (vbox, "margin", 6, NULL);
@@ -304,7 +315,8 @@ main (int   argc,
   gtk_widget_show (win);
   gtk_window_present (GTK_WINDOW (win));
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index f1e8415aeb7a16813c961f8b9bc7a261fe3328f9..0a116cfd84422447bdc2fec7c273e0a871188512 100644 (file)
@@ -626,20 +626,33 @@ create_window (void)
   return window;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = create_window ();
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 039a5695b5c14b0d5752494646764877b810b682..fbf3bbc21f01f7d3160706c5f1fca95e00cf6172 100644 (file)
@@ -54,12 +54,24 @@ font_activated_cb (GtkFontChooser *chooser, const gchar *font_name, gpointer dat
   g_debug ("font-activated: %s", font_name);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window;
   GtkWidget *box;
   GtkWidget *fontchooser;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -73,7 +85,7 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   g_signal_connect (fontchooser, "notify::font",
                     G_CALLBACK (notify_font_cb), NULL);
   g_signal_connect (fontchooser, "notify::preview-text",
@@ -85,7 +97,8 @@ main (int argc, char *argv[])
   gtk_font_chooser_set_preview_text (GTK_FONT_CHOOSER (fontchooser), "[user@host ~]$ &>>");
   gtk_font_chooser_set_show_preview_entry (GTK_FONT_CHOOSER (fontchooser), FALSE);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index e85c6dc773fcbb8e9931ecb0f2528ad089fc121a..cd35ff98c50c85967bdaced6a47955d9d72d160f 100644 (file)
@@ -64,11 +64,23 @@ font_activated_cb (GtkFontChooser *chooser, const gchar *font_name, gpointer dat
   g_debug ("font-activated: %s", font_name);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window;
   GtkWidget *font_button;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -111,9 +123,10 @@ main (int argc, char *argv[])
                                         monospace_filter, NULL, NULL);
     }
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 404314619930ec59fa2bdb7716719323cc018830..0fb225fecffe78cdc6be84a7dce5968a6ff7ed0e 100644 (file)
@@ -85,7 +85,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 20ca049ec2468c49044741bb40829355d21b892d..75a16ba527e63b7e1de8694e99c6cb58875383b6 100644 (file)
@@ -124,6 +124,17 @@ draw_border_cb (GtkToggleButton *toggle_button, GtkFrame *frame)
   gtk_frame_set_shadow_type (frame, shadow_type);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int main (int argc, char **argv)
 {
   GtkWidget *window, *widget;
@@ -132,13 +143,14 @@ int main (int argc, char **argv)
   GtkGrid *grid;
   gfloat xalign;
   gboolean draw_border;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
 
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 5));
   g_object_set (vbox, "margin", 12, NULL);
@@ -194,7 +206,8 @@ int main (int argc, char **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 64d8e31d204a852940809ade27d968a8ad2c5761..3af779c1e3d3f4c27be06dd1c2a1fb47ef5ac14f 100644 (file)
@@ -68,7 +68,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 8591eae2d59165ca78d1ec73bd63e9837ff226d3..9a61a5af4e035a28dcfa84fc5eef687dd61b6d73 100644 (file)
@@ -136,13 +136,8 @@ int main (int argc, char **argv)
 
   gtk_container_add (GTK_CONTAINER (window), box);
 
-
-  
-
-
-
-
   gtk_widget_show (window);
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
   return 0;
 }
index 8a32943457d72108b6313d6fe350a70d0f6806bf..bbd1e407d867be5ff3b5aea7a9538568016c379a 100644 (file)
 #include <gtk/gtk.h>
 #include <glib/gstdio.h>
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc,
       char **argv)
@@ -28,6 +39,7 @@ main (int argc,
   GIcon *emblemed;
   GEmblem *emblem;
   gchar *str;
+  gboolean done = FALSE;
 
 #ifdef GTK_SRCDIR
   g_chdir (GTK_SRCDIR);
@@ -70,9 +82,10 @@ main (int argc,
 
   gtk_widget_show (toplevel);
 
-  g_signal_connect (toplevel, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 08ed63ce73014726b84c50c50ae8677f3428560b..c2170adb0c8a24750d40f404e9bdb21e03b70931 100644 (file)
@@ -391,11 +391,23 @@ create_axis_slider (int axis)
   return box;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window, *box, *button, *controls;
   int i;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -406,7 +418,7 @@ main (int argc, char *argv[])
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "GtkGLArea - Triangle");
   gtk_window_set_default_size (GTK_WINDOW (window), 400, 600);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
   gtk_box_set_spacing (GTK_BOX (box), 6);
@@ -438,7 +450,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return EXIT_SUCCESS;
 }
index fea7115582f44ca5112bb70681dcef04657c566f..7e0503537e33e419421e3fb784edcc5a49b34a65 100644 (file)
@@ -3,17 +3,29 @@
 
 #include "gtkgears.h"
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window, *fixed, *gears, *spinner;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Test GL/gtk inter-blending");
   gtk_window_set_default_size (GTK_WINDOW (window), 250, 250);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   fixed = gtk_fixed_new ();
   gtk_container_add (GTK_CONTAINER (window), fixed);
@@ -75,7 +87,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return EXIT_SUCCESS;
 }
index ef4702165b16b87118d841e140fd67e50a380b4c..21f1b1250cd5bb068ddc30d289ef68b832937c81 100644 (file)
@@ -597,6 +597,17 @@ create_add_remove_buttons (GActionGroup *group,
 #define BUS_NAME "org.gtk.TestMenus"
 #define OBJ_PATH "/org/gtk/TestMenus"
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -617,6 +628,7 @@ main (int argc, char *argv[])
     { NULL, }
   };
   GOptionContext *context;
+  gboolean done = FALSE;
 
   context = g_option_context_new ("");
   g_option_context_add_main_entries (context, entries, NULL);
@@ -630,7 +642,7 @@ main (int argc, char *argv[])
     }
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
   gtk_container_add (GTK_CONTAINER (window), box);
 
@@ -681,7 +693,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 4b63268895b79d9d092dc07f44fdab1580f96cf6..733c858327eca3fd0587e9258742024aeb3d5fa2 100644 (file)
@@ -471,7 +471,8 @@ main (int argc, char *argv[])
   empty_grid ();
   spanning_grid ();
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 8c097bfd9627c6d762619573b9f8693903b46785..40016ca696bf4eec3607b8331c81ef32d8ca7ca0 100644 (file)
@@ -53,6 +53,7 @@ main (int argc, char *argv[])
   gtk_grid_attach (GTK_GRID (grid), label4, 1, 1, 1, 1);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
   return 0;
 }
index fbcb20f051b35e0b68672fc1debb66d26482ba2a..20a08b35ae364fdb2d76be505498ab87fbd9aee8 100644 (file)
@@ -97,6 +97,17 @@ tree_view_select_func (GtkTreeSelection *selection,
   return FALSE;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -104,13 +115,14 @@ main (int argc, char **argv)
   GtkTreeModel *model;
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   model = create_model ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_window_set_default_size (GTK_WINDOW (window), 320, 480);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
@@ -148,7 +160,8 @@ main (int argc, char **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 998a13d2181cd7b7fe39449f06777f74758ddb13..f5695c55d1aea9adcac1b75c8d8346481b5a5c1f 100644 (file)
@@ -49,6 +49,8 @@
 
 #include "test.xpm"
 
+static gboolean done = FALSE;
+
 gboolean
 file_exists (const char *filename)
 {
@@ -1701,8 +1703,8 @@ create_key_lookup (GtkWidget *widget)
 static gboolean
 cmw_destroy_cb(GtkWidget *widget)
 {
-  /* This is needed to get out of gtk_main */
-  gtk_main_quit ();
+  done = TRUE;
+  g_main_context_wakeup (NULL);
 
   return FALSE;
 }
@@ -1724,7 +1726,8 @@ cmw_color (GtkWidget *widget, GtkWidget *parent)
     
     /* wait until destroy calls gtk_main_quit */
     gtk_widget_show (csd);    
-    gtk_main ();
+    while (!done)
+      g_main_context_iteration (NULL, TRUE);
 }
 
 static void
@@ -1748,7 +1751,8 @@ cmw_file (GtkWidget *widget, GtkWidget *parent)
 
     /* wait until destroy calls gtk_main_quit */
     gtk_widget_show (fs);
-    gtk_main();
+    while (!done)
+      g_main_context_iteration (NULL, TRUE);
 }
 
 
@@ -1804,7 +1808,8 @@ create_modal_window (GtkWidget *widget)
   gtk_widget_show (window);
 
   /* wait until dialog get destroyed */
-  gtk_main();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 }
 
 /*
@@ -5680,65 +5685,6 @@ create_timeout_test (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-/*
- * Test of recursive mainloop
- */
-
-void
-mainloop_destroyed (GtkWidget *w, GtkWidget **window)
-{
-  *window = NULL;
-  gtk_main_quit ();
-}
-
-void
-create_mainloop (GtkWidget *widget)
-{
-  static GtkWidget *window = NULL;
-  GtkWidget *content_area;
-  GtkWidget *label;
-
-  if (!window)
-    {
-      window = gtk_dialog_new ();
-
-      gtk_window_set_display (GTK_WINDOW (window),
-                             gtk_widget_get_display (widget));
-
-      gtk_window_set_title (GTK_WINDOW (window), "Test Main Loop");
-
-      g_signal_connect (window, "destroy",
-                       G_CALLBACK (mainloop_destroyed),
-                       &window);
-
-      content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
-
-      label = gtk_label_new ("In recursive main loop...");
-      g_object_set (label, "margin", 20, NULL);
-
-      gtk_container_add (GTK_CONTAINER (content_area), label);
-      gtk_widget_show (label);
-
-      gtk_dialog_add_button (GTK_DIALOG (window),
-                             "Leave",
-                             GTK_RESPONSE_OK);
-      g_signal_connect_swapped (window, "response",
-                               G_CALLBACK (gtk_widget_destroy),
-                               window);
-    }
-
-  if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-
-      g_print ("create_mainloop: start\n");
-      gtk_main ();
-      g_print ("create_mainloop: done\n");
-    }
-  else
-    gtk_widget_destroy (window);
-}
-
 static void
 show_native (GtkWidget *button,
              GtkFileChooserNative *native)
@@ -6125,7 +6071,8 @@ void
 do_exit (GtkWidget *widget, GtkWidget *window)
 {
   gtk_widget_destroy (window);
-  gtk_main_quit ();
+  done = TRUE;
+  g_main_context_wakeup (NULL);
 }
 
 struct {
@@ -6164,7 +6111,6 @@ struct {
   { "size groups", create_size_groups },
   { "spinbutton", create_spins },
   { "statusbar", create_statusbar },
-  { "test mainloop", create_mainloop, TRUE },
   { "test timeout", create_timeout_test },
   { "toggle buttons", create_toggle_buttons },
   { "tooltips", create_tooltips },
@@ -6174,6 +6120,17 @@ struct {
 };
 int nbuttons = sizeof (buttons) / sizeof (buttons[0]);
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 void
 create_main_window (void)
 {
@@ -6191,7 +6148,7 @@ create_main_window (void)
   gtk_widget_set_name (window, "main_window");
   gtk_window_set_default_size (GTK_WINDOW (window), -1, 400);
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (window), box1);
@@ -6476,7 +6433,8 @@ main (int argc, char *argv[])
 
   create_main_window ();
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   if (1)
     {
index 51f5a97a13d5b22ab8b0c9f87dfd03587ddf9f65..d366ab17668c25f7f7eb59d27f28b9c83b83b64f 100644 (file)
@@ -70,6 +70,19 @@ toggle_fullscreen (GtkButton *button, gpointer data)
     }
 }
 
+static gboolean done = FALSE;
+
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 static void
 change_header (GtkButton *button, gpointer data)
 {
@@ -100,7 +113,7 @@ change_header (GtkButton *button, gpointer data)
       widget = gtk_button_new_with_label ("_Close");
       gtk_button_set_use_underline (GTK_BUTTON (widget), TRUE);
       gtk_style_context_add_class (gtk_widget_get_style_context (widget), "suggested-action");
-      g_signal_connect (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+      g_signal_connect (widget, "clicked", G_CALLBACK (quit_cb), &done);
 
       gtk_header_bar_pack_end (GTK_HEADER_BAR (header), widget);
 
@@ -142,7 +155,6 @@ main (int argc, char *argv[])
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (window), box);
 
-
   content = gtk_image_new_from_icon_name ("start-here-symbolic");
   gtk_image_set_pixel_size (GTK_IMAGE (content), 512);
 
@@ -162,7 +174,8 @@ main (int argc, char *argv[])
   gtk_container_add (GTK_CONTAINER (box), footer);
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   gtk_widget_destroy (window);
 
index 3a09bede1ec6300cc32dd579676e7dc3d169fd29..2ae275cf2dd531a248fad2cdd81c1b59376235e7 100644 (file)
@@ -830,20 +830,33 @@ create_window (void)
   return window;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = create_window ();
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index d4b330d66401177bc8da60994e6e75dd6955f37c..95644a4128153a6c0c25f6e8cbb0641ca26015bc 100644 (file)
@@ -32,6 +32,17 @@ usage (void)
           );
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -71,6 +82,7 @@ main (int argc, char *argv[])
     {
       GtkIconPaintable *icon;
       GtkWidget *window, *image;
+      gboolean done = FALSE;
 
       if (argc < 4)
        {
@@ -97,10 +109,11 @@ main (int argc, char *argv[])
       gtk_image_set_from_paintable (GTK_IMAGE (image), GDK_PAINTABLE (icon));
       g_object_unref (icon);
       gtk_container_add (GTK_CONTAINER (window), image);
-      g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+      g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
       gtk_widget_show (window);
 
-      gtk_main ();
+      while (!done)
+        g_main_context_iteration (NULL, TRUE);
     }
   else if (strcmp (argv[1], "list") == 0)
     {
index 69a9b95869cb56404c3945acc904c2ad945ca8b0..2a653ce08346eb5143301f43abb5cd1f62a71bf1 100644 (file)
@@ -261,7 +261,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index f82d7069506ccaa54ff478904554ba60df1b6666..0398f11bf6bb404eac32410d3bc21ca4e5e0d3b7 100644 (file)
@@ -588,7 +588,8 @@ main (gint argc, gchar **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index cc866e5f51d599fa4a386e2006163019c31695c1..46365bd271d35d90d18ae445edcb9fc5df6df19b 100644 (file)
@@ -11,6 +11,19 @@ on_button_clicked (GtkWidget *widget, gpointer data)
   g_print ("Button %d clicked\n", GPOINTER_TO_INT (data));
 }
 
+static gboolean done = FALSE;
+
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 static void
 kinetic_scrolling (void)
 {
@@ -26,7 +39,7 @@ kinetic_scrolling (void)
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   grid = gtk_grid_new ();
 
@@ -136,7 +149,8 @@ main (int argc, char **argv)
 
   kinetic_scrolling ();
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 255bd1d5235b0685e3ce2f0dc67dcef71fcb155d..9a94e7dbd289e29735d21693304902bce22e6805 100644 (file)
@@ -64,6 +64,17 @@ toggle (GtkSwitch *sw, GParamSpec *pspec, GtkLevelBar *bar)
     gtk_level_bar_set_mode (bar, GTK_LEVEL_BAR_MODE_CONTINUOUS);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -72,6 +83,7 @@ main (int argc, char *argv[])
   GtkWidget *bar;
   GtkWidget *box2;
   GtkWidget *sw;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -93,10 +105,11 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   g_timeout_add (100, increase_level, bar);
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 8e3f8b9007abdf5ef4fbd0f28e187f11c4de6be4..340afbd133529361eeaf680d68e2dd8c5d22aa58 100644 (file)
@@ -367,7 +367,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index c329f06fe580bbff0cc25b52d5217af463129133..601567ac685cfecd24538ec984bb29a3120cce6d 100644 (file)
@@ -95,11 +95,23 @@ create_row (const gchar *text)
   return row;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int main (int argc, char *argv[])
 {
   GtkWidget *window, *list, *sw, *row;
   gint i;
   gchar *text;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -120,10 +132,11 @@ int main (int argc, char *argv[])
       gtk_list_box_insert (GTK_LIST_BOX (list), row, -1);
     }
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 59120cc6bbe758154d1235a324e9de794b35fa59..a9063eff17bfbd54ef90eed8f3fc2a36b8d81b3b 100644 (file)
@@ -196,7 +196,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 732f8bdbd1b92bc4319053d76c2cbbe96e573c71..d954b6731abea5571034f981aebc05f35374e5e7 100644 (file)
@@ -263,7 +263,8 @@ main (int argc, char *argv[])
   gtk_widget_show (window);
   gtk_widget_show (dialog);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 7e3d945b73e364d5fa2892721d3193c64bf24297..35e6dc9bc9195ffe99151540534316ae07d3d1a7 100644 (file)
@@ -129,7 +129,8 @@ int main (int argc, char **argv)
 
        gtk_widget_show (window);
 
-       gtk_main ();
+        while (TRUE)
+                g_main_context_iteration (NULL, TRUE);
 
        return 0;
 }
index 0a707e2e0c7fbdbdd2d17e2e12bcf25c9ff7dddd..c4cecc3032854c421b58318184c7538cea29cf05 100644 (file)
@@ -26,6 +26,7 @@ static gboolean dont_ask_domain = FALSE;
 static gboolean dont_ask_password = FALSE;
 static gboolean dont_save_password = FALSE;
 
+static gboolean done = FALSE;
 
 static void
 got_reply (GMountOperation       *op,
@@ -87,7 +88,8 @@ got_reply (GMountOperation       *op,
   else if (G_MOUNT_OPERATION_UNHANDLED)
     g_assert_not_reached ();
 
-  gtk_main_quit ();
+  done = TRUE;
+  g_main_context_wakeup (NULL);
 }
 
 int
@@ -163,6 +165,7 @@ main (int argc, char *argv[])
                              flags);
     }
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
   return 0;
 }
index f6474bb2982845283fe3eda0660816d36ee581ec..8428e664971f8c0c46c2d06510abf9fe1117de57 100644 (file)
@@ -43,7 +43,8 @@ int main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index fe99dfc21db10be6ac587cd71ba28ed56d09abf7..2c23816541ecd421fd2e1093efff02003a571291 100644 (file)
@@ -308,10 +308,22 @@ create_trash_button (void)
   return button;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 gint
 main (gint argc, gchar *argv[])
 {
   GtkWidget *window, *grid;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -341,11 +353,12 @@ main (gint argc, gchar *argv[])
   gtk_container_add (GTK_CONTAINER (window), grid);
   gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
 
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index c002eebd9636e872911646bcfd5b3da82c8aed0c..152336810e7f4a78dda15de82bff468e25050b49 100644 (file)
@@ -43,6 +43,17 @@ orient_toggled (GtkToggleButton *button, gpointer user_data)
     }
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -50,6 +61,7 @@ main (int argc, char **argv)
   GtkWidget *grid;
   GtkWidget *box, *button;
   GList *orientables = NULL;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -83,9 +95,10 @@ main (int argc, char **argv)
   gtk_widget_show (window);
 
   g_signal_connect (window, "destroy",
-                  G_CALLBACK (gtk_main_quit), NULL);
+                  G_CALLBACK (quit_cb), &done);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 96462a3310dad67ccba3c147d4d1fd97a2cfe786..959a5a0ca74eeb3a9c780c794aa16502de932a93 100644 (file)
@@ -73,6 +73,16 @@ static const char *css =
 ""
 ;
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
 
 int
 main (int argc, char **argv)
@@ -83,6 +93,7 @@ main (int argc, char **argv)
   GtkWidget *bottom;
   GtkWidget *w;
   GtkCssProvider *provider;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -149,8 +160,9 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (box), top);
   gtk_container_add (GTK_CONTAINER (box), bottom);
   gtk_container_add (GTK_CONTAINER (window), box);
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 }
index b73b0fc7839fac692e853c10fe7f5bd7715228c7..4e93a32f4359d5324d00c18a15030a8b5ff5950f 100644 (file)
@@ -529,7 +529,8 @@ main (int argc, char *argv[])
   win8 = test_input_stacking ();
   gtk_widget_show (win8);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 37a857d2653224c6b7abf92b87d2a1f6c9dcd56d..a400e548120ef950ced175438ff086db254f20da 100644 (file)
@@ -156,7 +156,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (win);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 5e48ef8bd132d96770bb47fda95921eb939699ef..ae2bde9fd5ea2cab53beb5994836b49240c5829b 100644 (file)
@@ -56,6 +56,17 @@ draw_func (GtkDrawingArea *darea,
   g_object_unref (dest);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main(int argc, char **argv)
 {
@@ -66,6 +77,7 @@ main(int argc, char **argv)
        GtkRequisition scratch_requisition;
         const gchar *creator;
         GError *error;
+        gboolean done = FALSE;
 
        gtk_init ();
 
@@ -89,7 +101,7 @@ main(int argc, char **argv)
 
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        g_signal_connect (window, "destroy",
-                         G_CALLBACK (gtk_main_quit), NULL);
+                         G_CALLBACK (quit_cb), &done);
        
        vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
        gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -141,7 +153,8 @@ main(int argc, char **argv)
        
        gtk_widget_show (window);
 
-       gtk_main ();
+        while (!done)
+                g_main_context_iteration (NULL, TRUE);
 
        return 0;
 }
index e258c4405d5cbd1e007870c9dc3926e6a3d08193..bd93224524199690d78f0502e422e7cc41548fa6 100644 (file)
@@ -2,11 +2,23 @@
 #define GTK_COMPILATION
 #include "gtk/gtkplacesviewprivate.h"
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *win;
   GtkWidget *view;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -18,9 +30,10 @@ main (int argc, char *argv[])
   gtk_container_add (GTK_CONTAINER (win), view);
   gtk_widget_show (win);
 
-  g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), win);
+  g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 7927362d57340e41f08c72bcd95291427d4de8cb..3b87341eb797a93515d72a02ccfaf470f5de053d 100644 (file)
@@ -31,6 +31,17 @@ static GActionEntry entries[] = {
   { "action10", activate, NULL, NULL, NULL }
 };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -51,6 +62,7 @@ main (int argc, char *argv[])
   GtkWidget *check;
   GtkWidget *combo;
   GtkWidget *header_bar;
+  gboolean done = FALSE;
 
 #ifdef GTK_SRCDIR
   g_chdir (GTK_SRCDIR);
@@ -167,10 +179,11 @@ main (int argc, char *argv[])
   g_object_unref (builder);
 
 
-  g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (win);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index cb2cf9b95201f745edd4aa82260b04c803d64df1..d4e653fa71885f9f36df984307f36124b970aa0a 100644 (file)
@@ -163,7 +163,8 @@ main (gint argc,
   gtk_grid_attach (GTK_GRID (box), revealer, 3, 4, 1, 1);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   gtk_widget_destroy (window);
 
index 33280dcf37e2fd27fd4715d8f0525e159e4b81d0..4c7bc652e78ef26b905beab5da56c3c536391e18 100644 (file)
@@ -88,6 +88,17 @@ extra (GtkToggleButton *button)
     }
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int main (int argc, char *argv[])
 {
   GtkWidget *window;
@@ -113,12 +124,13 @@ int main (int argc, char *argv[])
 
   gdouble pos_marks[4] = { 0.0, 33.3, 66.6, 100.0 };
   const gchar *pos_labels[4] = { "Left", "Right", "Top", "Bottom" };
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Ranges with marks");
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
   flipbox = box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
   gtk_widget_set_hexpand (flipbox, TRUE);
@@ -228,7 +240,8 @@ int main (int argc, char *argv[])
   gtk_container_add (GTK_CONTAINER (box2), button);
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 03a0b669fe10608829fb5986fd28bb0a2feea73d..6c0f7c52983305bf575a00ec946d92b8f2431b7a 100644 (file)
@@ -129,7 +129,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (win);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 417f1722179e5a0d97a462acb2cbaf30ee4e08fe..e045f7c0ea35d4b43c419e8565989bb73f9aaa6c 100644 (file)
@@ -327,7 +327,8 @@ main (int argc, char *argv[])
 
   scrollable_policy ();
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 2174d195de4e96ba97c93fd5f9c849d881940652..f496409e30dc488acf14c512bb231ac7223e0e25 100644 (file)
@@ -213,7 +213,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
  
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 4085b51373abded5afd9364506be163fa03c032e..6619340dbb03aafcb7e7f6950e3c6be6af7e2ef1 100644 (file)
@@ -81,7 +81,8 @@ int main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 49420a69a538731f44ef3ae28f9170d21cf2754e..4b9df504afd59140fd7de7c451a1ccd4f72fd13c 100644 (file)
 
 static gint num_windows = 0;
 
+static gboolean done = FALSE;
+
 static gboolean
 on_delete (GtkWindow *w)
 {
   num_windows--;
   if (num_windows == 0)
-    gtk_main_quit ();
+    {
+      done = TRUE;
+      g_main_context_wakeup (NULL);
+    }
 
   return FALSE;
 }
@@ -76,7 +81,8 @@ main (int argc, char **argv)
   prepare_window_for_orientation (GTK_ORIENTATION_HORIZONTAL);
   prepare_window_for_orientation (GTK_ORIENTATION_VERTICAL);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 62cb8902c9daf51a0f2d9416e11d29bb210e02ff..7bbf8d3c890bf9ded8d2b2bc0907fe0111ca0d2e 100644 (file)
@@ -73,7 +73,8 @@ main (int argc, char *argv[])
                          G_BINDING_DEFAULT);                      
   gtk_window_present (GTK_WINDOW (win));
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 672a12fd1218b7c122d682f6199d35f45e6e285d..ef53d67ebcee253ff9ddc63c653c2f0c337485d9 100644 (file)
@@ -257,7 +257,8 @@ main (gint argc,
 
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   gtk_widget_destroy (window);
 
index 7febdd6deaf8757ebcc05c4c560e5362e5247a19..0e40b62237c62c17110cc773174f2d51c57c56a7 100644 (file)
@@ -39,7 +39,8 @@ main (int argc, char *argv[])
 
   gtk_window_present (GTK_WINDOW (win));
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 9d9ded6d45445ec01c75caadee0027f7d686cc73..e54ad9522d58d8706c90827be6b54cf88d88f688 100644 (file)
@@ -147,17 +147,29 @@ make_delayed_switch (gboolean is_on,
   return hbox;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int main (int argc, char *argv[])
 {
   GtkWidget *window;
   GtkWidget *vbox, *hbox;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "GtkSwitch");
   gtk_window_set_default_size (GTK_WINDOW (window), 400, -1);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
@@ -178,7 +190,8 @@ int main (int argc, char *argv[])
   hbox = make_delayed_switch (FALSE, TRUE);
   gtk_container_add (GTK_CONTAINER (vbox), hbox);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return EXIT_SUCCESS;
 }
index 3fe7dc358f07428e29f53cb1b827d45b120ce281..1389d308412365b7e049a0e21bb291d1fc187be2 100644 (file)
@@ -100,6 +100,17 @@ gtk_texture_view_class_init (GtkTextureViewClass *klass)
   widget_class->snapshot = gtk_texture_view_snapshot;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -108,6 +119,7 @@ main (int argc, char **argv)
   GdkTexture *texture;
   GFile *file;
   GError *error = NULL;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -127,15 +139,16 @@ main (int argc, char **argv)
     }
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   view = g_object_new (GTK_TYPE_TEXTURE_VIEW, NULL);
   ((GtkTextureView*)view)->texture = g_steal_pointer (&texture);
 
   gtk_container_add (GTK_CONTAINER (window), view);
 
   gtk_widget_show (window);
-  gtk_main ();
 
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   g_object_unref (file);
 
index c0458e2dd935a2376bd0e946426d8a0a26f38a26..6ffe1b3b600fa857b693434c39a806f1d0fc0a88 100644 (file)
@@ -202,7 +202,8 @@ main (int argc, char **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 83431bfc3128f192b19777a041c61df10abf6fec..36e037887f7f3f24bad393d80d18dc4cbd576b08 100644 (file)
@@ -171,16 +171,28 @@ update_mark_position (void)
   gtk_text_buffer_move_mark (buffer, the_mark, &iter);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkWidget *window, *sw, *box, *box2, *button;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
 
@@ -232,7 +244,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 4b1b24e0fdefa73d626ed45d30251b64cce23055..47174d9b494e15118b38e3a4a48bb9de56e05d32 100644 (file)
@@ -34,7 +34,8 @@ int main (int argc, char *argv[])
   
   gtk_widget_show (GTK_WIDGET (window));
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 0f9af5ce053d9feb6cc368c7c1922ca08682d49b..3ae905ed9c5e1885525fd635f6a2a5e90ba17e3b 100644 (file)
@@ -260,6 +260,17 @@ query_tooltip_label_cb (GtkWidget  *widget,
   return TRUE;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -281,12 +292,13 @@ main (int argc, char *argv[])
   GtkTextTag *tag;
 
   gchar *text, *markup;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Tooltips test");
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
   gtk_container_add (GTK_CONTAINER (window), box);
@@ -436,7 +448,8 @@ main (int argc, char *argv[])
   /* Done! */
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 0b5d6d8c06b99895d44f6a22df1be04d0fd7bc11..f651bf07eea4795accb465a102d88cc5f03b11d8 100644 (file)
@@ -464,6 +464,17 @@ setup_sanity_checks (GtkTreeView *treeview)
   selection_changed_cb (gtk_tree_view_get_selection (treeview), NULL);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -473,6 +484,7 @@ main (int    argc,
   GtkWidget *treeview;
   GtkTreeModel *model;
   guint i;
+  gboolean done = FALSE;
   
   gtk_init ();
 
@@ -480,7 +492,7 @@ main (int    argc,
     gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_window_set_default_size (GTK_WINDOW (window), 430, 400);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
@@ -509,7 +521,8 @@ main (int    argc,
 
   g_idle_add (dance, treeview);
   
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index b22f5fbf95e9cadd543bf888743c1c0ba16a3b2f..7f44f7f18c52db723f9a595e01fb06a9136d8c02 100644 (file)
@@ -707,6 +707,17 @@ static const char *row_targets[] = {
   "GTK_TREE_MODEL_ROW"
 };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -720,6 +731,7 @@ main (int argc, char *argv[])
   GtkTreeModel *sample_model;
   GdkContentFormats *targets;
   gint i;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -744,7 +756,7 @@ main (int argc, char *argv[])
 
   /* Set up the test windows. */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); 
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); 
   gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
   gtk_window_set_title (GTK_WINDOW (window), "Top Window");
   swindow = gtk_scrolled_window_new (NULL, NULL);
@@ -753,7 +765,7 @@ main (int argc, char *argv[])
   gtk_widget_show (window);
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); 
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); 
   gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
   gtk_window_set_title (GTK_WINDOW (window), "Bottom Window");
   swindow = gtk_scrolled_window_new (NULL, NULL);
@@ -763,7 +775,7 @@ main (int argc, char *argv[])
 
   /* Set up the main window */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_window_set_default_size (GTK_WINDOW (window), 500, 300);
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -897,7 +909,9 @@ main (int argc, char *argv[])
   gtk_container_add (GTK_CONTAINER (hbox), button);
 
   gtk_widget_show (window);
-  gtk_main ();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 7bd3187b58c2c0b53c845a5029e07047e591b404..00e347b45626446e4ba37331a9b9b33aa2528762 100644 (file)
@@ -159,6 +159,17 @@ combo_box_changed (GtkComboBox *combo_box,
   g_list_free (columns);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -169,13 +180,14 @@ main (int argc, char **argv)
   GtkWidget *sw;
   GtkWidget *tree_view;
   GtkWidget *button;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   /* Window and box */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -231,7 +243,8 @@ main (int argc, char **argv)
   /* Done */
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 306e87ad45a6f819b0bcd16189b2a886b8bf6de4..16cabbba0116e84c2451282034d1e7033f79cb64 100644 (file)
@@ -151,7 +151,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 0b47b28a333891b8a8fc9626f5daa33e7cd7a39d..825bb9fef96c02a493143368978d939aef0813ab 100644 (file)
@@ -214,6 +214,17 @@ create_control (GtkWidget *box, gint number, gint cntl, CallbackData *data)
   g_free (name);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 gint
 main (gint argc, gchar **argv)
 {
@@ -227,6 +238,7 @@ main (gint argc, gchar **argv)
   GtkCellArea *area;
   CallbackData callback[4];
   GtkGesture *gesture;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -235,7 +247,7 @@ main (gint argc, gchar **argv)
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "GtkTreeView editing sample");
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -381,7 +393,8 @@ main (gint argc, gchar **argv)
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 6155744595ec8faa3431a83f6a45ee3ddf695366..ee77e73fa5b51e8ee75c1b26c065e102abe4f4e5 100644 (file)
@@ -116,6 +116,17 @@ futz (void)
   return TRUE;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -126,13 +137,14 @@ main (int argc, char *argv[])
   GtkWidget *hbox;
   GtkWidget *button;
   GtkTreePath *path;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   path = gtk_tree_path_new_from_string ("80");
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Reflow test");
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
   gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("Incremental Reflow Test"));
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -166,6 +178,7 @@ main (int argc, char *argv[])
   gtk_window_set_default_size (GTK_WINDOW (window), 300, 400);
   gtk_widget_show (window);
   g_timeout_add (1000, (GSourceFunc) futz, NULL);
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
   return 0;
 }
index 65cebaf587340605b1093e19968c57acbee68f7e..1088082796025baadee2c377b362c8351ecfe29c 100644 (file)
@@ -334,6 +334,17 @@ set_indicator_size (GtkTreeViewColumn *column,
   g_object_set (cell, "indicator_size", size, NULL);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -345,12 +356,13 @@ main (int argc, char *argv[])
   GtkCellRenderer *renderer;
   gint col_offset;
   GtkTreeViewColumn *column;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Card planning sheet");
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
   gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("Jonathan's Holiday Card Planning Sheet"));
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -465,7 +477,7 @@ main (int argc, char *argv[])
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Model");
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
   gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("The model revealed"));
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -531,7 +543,8 @@ main (int argc, char *argv[])
                               650, 400);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 277a6e156d61666f855d4eab0ffe09395f4b3c45..199af7cb7520a29300b23461bf3084138d78148f 100644 (file)
@@ -297,6 +297,17 @@ match_file (gpointer item, gpointer data)
   return result;
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -307,12 +318,13 @@ main (int argc, char *argv[])
   GtkFilterListModel *filter;
   GtkSliceListModel *slice;
   GFile *root;
+  gboolean done = FALSE;
 
   gtk_init ();
 
   win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (win), 400, 600);
-  g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), win);
+  g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (win), vbox);
@@ -375,7 +387,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (win);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 39944a26b761ec79e57f810610edf16c686d2147..564eb4902bdc9434cf92a23fc6187ae60c72e84c 100644 (file)
@@ -138,7 +138,8 @@ int main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 14a1b25e1e3aac3951e90c07c70cac4ecd1a7464..b24f5cd61b75440e798cf75f55dd38d57d226cfc 100644 (file)
@@ -93,6 +93,17 @@ switch_search_method (GtkWidget *button,
     gtk_tree_view_set_search_entry (GTK_TREE_VIEW (tree_view), NULL);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -111,6 +122,7 @@ main (int argc, char *argv[])
   GtkWidget *entry, *button;
   GtkWidget *window2, *vbox2, *scrolled_window2, *tree_view2;
   GtkWidget *window3, *vbox3, *scrolled_window3, *tree_view3;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -120,7 +132,7 @@ main (int argc, char *argv[])
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Words, words, words - Window 1");
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
   gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("Jonathan and Kristian's list of cool words. (And Anders' cool list of numbers) \n\nThis is just a GtkTreeStore"));
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -248,7 +260,7 @@ main (int argc, char *argv[])
       window2 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_title (GTK_WINDOW (window2), 
                            "Words, words, words - window 2");
-      g_signal_connect (window2, "destroy", gtk_main_quit, NULL);
+      g_signal_connect (window2, "destroy", G_CALLBACK (quit_cb), &done);
       vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
       gtk_container_add (GTK_CONTAINER (vbox2), 
                          gtk_label_new ("Jonathan and Kristian's list of words.\n\nA GtkTreeModelSort wrapping the GtkTreeStore of window 1"));
@@ -317,7 +329,7 @@ main (int argc, char *argv[])
       window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_title (GTK_WINDOW (window3), 
                            "Words, words, words - Window 3");
-      g_signal_connect (window3, "destroy", gtk_main_quit, NULL);
+      g_signal_connect (window3, "destroy", G_CALLBACK (quit_cb), &done);
       vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
       gtk_container_add (GTK_CONTAINER (vbox3), 
                          gtk_label_new ("Jonathan and Kristian's list of words.\n\nA GtkTreeModelSort wrapping the GtkTreeModelSort of window 2"));
@@ -400,7 +412,8 @@ main (int argc, char *argv[])
        }
     }
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
   
   return 0;
 }
index 37735cda33347b3e642a94c93f255ed1836f437f..903af9fa61c94db3f3105b5af6a1bf87d24da9f7 100644 (file)
@@ -645,6 +645,17 @@ static const char *row_targets[] = {
   "GTK_TREE_MODEL_ROW"
 };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -657,6 +668,7 @@ main (int    argc,
   GtkTreeModel *model;
   GdkContentFormats *targets;
   gint i;
+  gboolean done = FALSE;
   
   gtk_init ();
 
@@ -687,7 +699,7 @@ main (int    argc,
   run_automated_tests ();
   
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_window_set_default_size (GTK_WINDOW (window), 430, 400);
 
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
@@ -749,7 +761,8 @@ main (int    argc,
   
   gtk_widget_show (window);
   
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 15512e114eb67e937186771fd8c0e094ae6f169f..6946987e04be7fbae7c592e9177e890313e5df5d 100644 (file)
@@ -288,6 +288,17 @@ create_model (void)
   return GTK_TREE_MODEL (model);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 gint
 main (gint argc, gchar **argv)
 {
@@ -298,6 +309,7 @@ main (gint argc, gchar **argv)
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
   GtkCellArea *area;
+  gboolean done = FALSE;
   
   gtk_init ();
 
@@ -306,7 +318,7 @@ main (gint argc, gchar **argv)
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Vertical cells in GtkTreeViewColumn example");
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   scrolled_window = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_ETCHED_IN);
@@ -371,7 +383,8 @@ main (gint argc, gchar **argv)
                               800, 400);
 
   gtk_widget_show (window);
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 04bff92ccd336874d6e964408029bd08577db4b9..f35f31f139bad0b00284238ef25aefad81743458 100644 (file)
@@ -114,7 +114,8 @@ main (int    argc,
   g_signal_emit_by_name (button, "clicked");
   g_timeout_add (4000, (GSourceFunc) show_error, window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 0ee9e7903cfdcc4772f00a0d5598ea1e64de2891..08b92add02849490f652ee3ffd806fb59edb5923 100644 (file)
@@ -265,12 +265,24 @@ gtk_focus_widget_class_init (GtkFocusWidgetClass *klass)
   gtk_widget_class_set_css_name (widget_class, "focuswidget");
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main()
 {
   GtkWidget *window;
   GtkWidget *widget;
   GtkCssProvider *provider;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -286,9 +298,10 @@ main()
   gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
 
   gtk_container_add (GTK_CONTAINER (window), widget);
-  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 }
index d8cf78fc6c5c58e05b919d1871a86f11ff4f459d..f5a6f0aa78deb414a8387d57983ef2762fe4cf40 100644 (file)
@@ -278,6 +278,17 @@ toggled_cb (GtkToggleButton *source,
   do_picking = gtk_toggle_button_get_active (source);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -287,6 +298,7 @@ main (int argc, char **argv)
   GtkWidget *titlebar;
   GtkWidget *toggle_button;
   GtkCssProvider *provider;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -296,7 +308,6 @@ main (int argc, char **argv)
                                               GTK_STYLE_PROVIDER (provider),
                                               GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 
-
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   matrix_chooser = g_object_new (GTK_TYPE_MATRIX_CHOOSER, NULL);
   transform_tester = g_object_new (GTK_TYPE_TRANSFORM_TESTER, NULL);
@@ -333,10 +344,11 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (window), box);
 
   gtk_window_set_default_size ((GtkWindow *)window, 200, 200);
-  g_signal_connect (window, "close-request", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index baa49952ac9b3df38501310f2224b103fa8d7541..527684ea9720b1519945067ba08ae4b801785f77 100644 (file)
@@ -134,7 +134,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index e5fb8769063be4e9a67b54631869780ae8e7c1dc..038c66887fa596373f87c55a0a29b0c113ed9426 100644 (file)
@@ -138,7 +138,8 @@ main (int argc, char *argv[])
 
   create_window ();
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 2eaddcf702e92d5f7d0ee05d9d49b04450e99f08..32684b78ba9494a3beb10146f3b5d7c3517456d2 100644 (file)
@@ -276,6 +276,19 @@ iter_append (GtkWidget *button, GtkTreeView *tree_view)
     }
 }
 
+static gboolean done = FALSE;
+
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 static void
 make_window (gint view_type)
 {
@@ -334,7 +347,7 @@ make_window (gint view_type)
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
                                  GTK_POLICY_AUTOMATIC,
                                  GTK_POLICY_AUTOMATIC);
-  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
 
   /* buttons */
   button = gtk_button_new_with_label ("gtk_tree_store_remove");
@@ -448,7 +461,8 @@ main (int argc, char *argv[])
   make_window (0);
   make_window (1);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 033425ece4ff8083dea5b2470c74ae6cf09feac4..14fcbfc0ba8003237fc07441c21eb71acf4c5b67 100644 (file)
@@ -359,6 +359,17 @@ static GOptionEntry options[] = {
   { NULL }
 };
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main(int argc, char **argv)
 {
@@ -366,6 +377,7 @@ main(int argc, char **argv)
   GError *error = NULL;
   GdkFrameClock *frame_clock;
   GOptionContext *context;
+  gboolean done = FALSE;
 
   context = g_option_context_new ("");
   g_option_context_add_main_entries (context, options, NULL);
@@ -383,7 +395,7 @@ main(int argc, char **argv)
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
   g_signal_connect (window, "destroy",
-                    G_CALLBACK (gtk_main_quit), NULL);
+                    G_CALLBACK (quit_cb), &done);
 
   da = gtk_drawing_area_new ();
   gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), on_draw, NULL, NULL);
@@ -402,7 +414,8 @@ main(int argc, char **argv)
                     G_CALLBACK (on_update), NULL);
   gdk_frame_clock_begin_updating (frame_clock);
 
-  gtk_main ();
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 069d8132f33f04e179ccb85ad1e23a33faf27ef8..85de8b8cbdd11c3596a4984d9b9f605f87e4f578 100644 (file)
@@ -53,12 +53,24 @@ create_dark_popup (GtkWidget *parent)
   gtk_widget_show (popup);
 }
 
+static void
+quit_cb (GtkWidget *widget,
+         gpointer   data)
+{
+  gboolean *done = data;
+
+  *done = TRUE;
+
+  g_main_context_wakeup (NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkBuilder *builder;
   GtkWidget  *window;
   const gchar *filename;
+  gboolean done = FALSE;
 
   gtk_init ();
 
@@ -71,12 +83,13 @@ main (int argc, char *argv[])
 
   window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
   g_object_unref (G_OBJECT (builder));
-  g_signal_connect (window, "destroy",
-                    G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
   gtk_widget_show (window);
 
   create_dark_popup (window);
-  gtk_main ();
+
+  while (!done)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 51e3b179cdbb7aaec7ecbec9922db00532c8d290..6775e6d170dec7beab1b9f5eb1d9aaaca62b9899 100644 (file)
@@ -110,7 +110,8 @@ main (int argc, char *argv[])
 
   gtk_widget_show (window);
 
-  gtk_main ();
+  while (TRUE)
+    g_main_context_iteration (NULL, TRUE);
 
   return 0;
 }
index 47794a476d1d7b05529da4013797f203f3df58cf..b1f66e2a326f8412f5d821dde3caa72c9f7e7721 100644 (file)
@@ -24,7 +24,6 @@ main (int argc, char **argv)
   gdk_display_manager_set_default_display (gdk_display_manager_get (), display);
 
   win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
 
   but = gtk_button_new_with_label ("Try to Exit");
   g_signal_connect_swapped (but, "clicked",
index d3ed82653b58311d84ad40f4377bd99591ca137f..1ec40ab04518ec2f3ae869bf4bc143d8459810dc 100644 (file)
@@ -180,7 +180,7 @@ static void
 test_app_chooser_dialog_basic (void)
 {
   GtkWidget *widget;
-  gboolean done;
+  gboolean done = FALSE;
 
   widget = gtk_app_chooser_dialog_new_for_content_type (NULL, 0, "text/plain");
   g_assert (GTK_IS_APP_CHOOSER_DIALOG (widget));
@@ -189,7 +189,6 @@ test_app_chooser_dialog_basic (void)
    * the main context then app_chooser_online_get_default_ready_cb()
    * will be eventually called and segfault.
    */
-  done = FALSE;
   g_timeout_add (500, main_loop_quit_cb, &done);
   while (!done)
     g_main_context_iteration (NULL,  TRUE);
@@ -224,6 +223,7 @@ static void
 test_file_chooser_widget_basic (void)
 {
   GtkWidget *widget;
+  gboolean done = FALSE;
 
   /* This test also tests the internal GtkPathBar widget */
   g_test_log_set_fatal_handler (ignore_gvfs_warning, NULL);
@@ -240,8 +240,9 @@ test_file_chooser_widget_basic (void)
    * Since we assert all automated children are finalized we
    * can catch this
    */
-  g_timeout_add (100, main_loop_quit_cb, NULL);
-  gtk_main();
+  g_timeout_add (100, main_loop_quit_cb, &done);
+  while (!done)
+    g_main_context_iteration (NULL,  TRUE);
 
   gtk_widget_destroy (widget);
 }
@@ -272,13 +273,15 @@ static void
 test_file_chooser_button_basic (void)
 {
   GtkWidget *widget;
+  gboolean done = FALSE;
 
   g_test_log_set_fatal_handler (ignore_gvfs_warning, NULL);
 
   widget = gtk_file_chooser_button_new ("Choose a file !", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
   g_assert (GTK_IS_FILE_CHOOSER_BUTTON (widget));
-  g_timeout_add (100, main_loop_quit_cb, NULL);
-  gtk_main();
+  g_timeout_add (100, main_loop_quit_cb, &done);
+  while (!done)
+    g_main_context_iteration (NULL,  TRUE);
 
   gtk_widget_destroy (widget);
 }